package ModuloCliente;
import java.util.Vector;


public class FachadaCliente implements InterfaceFachadaCliente {

    private ManipulaCliente cc;

    private FachadaCliente(){
    	RepositorioClienteArray rep = new RepositorioClienteArray();
    	cc = new ManipulaCliente(rep);
    }
    
    public static FachadaCliente getInstancia(){
    	return FachadaHolder.instancia;
    }
    
    private static class FachadaHolder{
    	private static FachadaCliente instancia = new FachadaCliente();
    }
    
    /** Metodos que manipula clientes**/
    public boolean cadastrarCliente(Cliente c){
        return cc.cadastrarCliente(c);
    }
    
    public boolean cadastrarDependente(Dependente d){
    	return cc.cadastrarDependente(d);
    }
    
    public Cliente buscarCliente(String cpf){
    	return cc.buscarCliente(cpf);
    }
    
    public boolean atualizarCliente(String cpf, Cliente c){
    	return cc.atualizarCliente(cpf, c);
    }
    
    public Vector<Dependente> buscarDependente(String cpfTitular){
    	return cc.buscarDependente(cpfTitular);
    }
     
    public boolean pesquisarCpf(String cpf){
    	return cc.pesquisarCpf(cpf);
    }
    
    public boolean removerCliente(Cliente c){
		return cc.removerCliente(c);
	}
    
    public boolean removerDependente(int indice){
    	return cc.removerDependente(indice);
    }
    
}

